﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using FlorDeLiz.BusinessEntitites;
using FlorDeLiz.BusinessLayer;

namespace FlorDeLiz.Pesquisa
{
    public partial class PesquisaCliente : Form
    {
        private Vendas frmVendas;
        public PesquisaCliente()
        {
            InitializeComponent();
        }

        public PesquisaCliente(Vendas vendas)
        {
            InitializeComponent();
            frmVendas = vendas;
        }

        private void dgvClientes_DoubleClick(object sender, EventArgs e)
        {
            frmVendas.txtNome.Text = string.Empty;
            frmVendas.txtCPF.Text = string.Empty;
            frmVendas.txtEndereco.Text = string.Empty;            
            frmVendas.txtNumero.Text = string.Empty;
            frmVendas.txtBairro.Text = string.Empty;
            frmVendas.txtCidade.Text = string.Empty;
            frmVendas.txtEstado.Text = string.Empty;

            if (dgvClientes.SelectedRows.Count > 0)
            {
                Cliente cliente = (Cliente)dgvClientes.SelectedRows[0].DataBoundItem;

                if (cliente != null)
                {
                    frmVendas.txtNome.Text = cliente.Nome;
                    frmVendas.txtCPF.Text = cliente.CPF_CNPJ;
                    frmVendas.txtEndereco.Text = cliente.Endereco;
                    frmVendas.txtNumero.Text = cliente.Numero;
                    frmVendas.txtBairro.Text = cliente.Bairro;
                    frmVendas.txtCidade.Text = cliente.Cidade;
                    frmVendas.txtEstado.Text = cliente.Estado;
                    this.Close();
                }
            }
        }

        private void txtPesquisaCliente_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtPesquisaCliente.Text.Trim()) && txtPesquisaCliente.Text.Length >= 3)
            {
                List<Cliente> clientes = new List<Cliente>();
                clientes = ((List<Cliente>)clienteBindingSource.DataSource).FindAll(c => c.Nome.ToUpper().Contains(txtPesquisaCliente.Text.ToUpper().Trim()));
                dgvClientes.DataSource = clientes;
            }
            else
            {
                dgvClientes.DataSource = clienteBindingSource.DataSource;
            }
            dgvClientes.ClearSelection();
        }

        private void PesquisaCliente_Load(object sender, EventArgs e)
        {
            CarregarGrid();
        }

        private void CarregarGrid()
        {
            clienteBindingSource.DataSource = ClienteBL.Instancia.ObterClientes(null, string.Empty, string.Empty);
            dgvClientes.AutoGenerateColumns = false;
            dgvClientes.DataSource = clienteBindingSource;
            dgvClientes.ClearSelection();
        }        
    }
}
